Title: 07 Apr 2024 Analysis

Author ~ Tabish Ali Ansari

In [2]:
#importing required libraries
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import statistics as stats
In [3]:
#reading the csv file and porting it into a pandas dataframe
data = pd.read_csv(r"D:\Project - Forecasting Power Consumption\04-04-2024 to 18-04-2024\Data(.csv)\elog20240407.csv",
                  sep = ";",
                  na_values=["NA", "NaN", "Missing", "Null", "NULL"])
#column names contain IOITSecure447> which is not useful at all and hence is dropped
#Changing column names as per our preferences
new_column_names = [col.split(">", 1)[-1].strip() for col in data.columns]
data.columns = new_column_names
data.head()
Out[3]:
TIME R Ph Voltage Y Ph Voltage B Ph Voltage Average Phase Voltage RY Line Voltage YB Line Voltage BR Line Voltage R Phase Line current Y Phase Line current ... B- Phase Active Power 3 Phase Active Power R- Phase Reactive Power Y- Phase Reactive Power B- Phase Reactive Power 3 Phase Reactive Power R- Phase Apparent Power Y- Phase Apparent Power B- Phase Apparent Power 3 Phase Apparent Power
0 07/04/2024 00:00:01 235.20 236.40 238.05 236.51 409.69 408.17 411.05 35.09 34.00 ... 5.41 19.68 3.94 3.68 -0.18 7.45 8.23 8.04 5.50 21.23
1 07/04/2024 00:00:11 234.92 236.20 237.85 236.35 409.46 407.89 410.84 35.13 33.97 ... 5.41 19.68 3.94 3.68 -0.18 7.45 8.23 8.04 5.50 21.23
2 07/04/2024 00:00:21 234.92 236.20 237.85 236.35 409.46 407.89 410.84 35.13 33.97 ... 5.42 19.65 3.94 3.67 -0.17 7.45 8.26 8.03 5.48 21.21
3 07/04/2024 00:00:31 234.80 235.99 237.71 236.18 409.12 407.61 410.48 35.22 34.18 ... 5.43 19.74 3.94 3.67 -0.18 7.45 8.26 8.03 5.48 21.21
4 07/04/2024 00:00:41 234.80 235.99 237.71 236.18 409.12 407.61 410.48 35.22 34.18 ... 5.43 19.74 3.94 3.67 -0.18 7.42 8.27 8.08 5.49 21.27

5 rows × 30 columns

In [4]:
print("The dataset contains (rows, column):", data.shape)
The dataset contains (rows, column): (8640, 30)
In [5]:
data.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 8640 entries, 0 to 8639
Data columns (total 30 columns):
 #   Column                    Non-Null Count  Dtype  
---  ------                    --------------  -----  
 0   TIME                      8640 non-null   object 
 1   R Ph Voltage              8640 non-null   float64
 2   Y Ph Voltage              8640 non-null   float64
 3   B Ph Voltage              8640 non-null   float64
 4   Average Phase Voltage     8640 non-null   float64
 5   RY Line Voltage           8640 non-null   float64
 6   YB Line Voltage           8640 non-null   float64
 7   BR Line Voltage           8640 non-null   float64
 8   R Phase Line current      8640 non-null   float64
 9   Y Phase Line current      8640 non-null   float64
 10  B Phase Line current      8640 non-null   float64
 11  Neutral Line current      8640 non-null   float64
 12  R Phase Active Current    8640 non-null   float64
 13  Y Phase Active Current    8640 non-null   float64
 14  B Phase Active Current    8640 non-null   float64
 15  R Phase Reactive Current  8640 non-null   float64
 16  Y Phase Reactive Current  8640 non-null   float64
 17  B Phase Reactive Current  8640 non-null   float64
 18  R- Phase Active Power     8640 non-null   float64
 19  Y- Phase Active Power     8640 non-null   float64
 20  B- Phase Active Power     8640 non-null   float64
 21  3 Phase Active Power      8640 non-null   float64
 22  R- Phase Reactive Power   8640 non-null   float64
 23  Y- Phase Reactive Power   8640 non-null   float64
 24  B- Phase Reactive Power   8640 non-null   float64
 25  3 Phase Reactive Power    8640 non-null   float64
 26  R- Phase Apparent Power   8640 non-null   float64
 27  Y- Phase Apparent Power   8640 non-null   float64
 28  B- Phase Apparent Power   8640 non-null   float64
 29  3 Phase Apparent  Power   8640 non-null   float64
dtypes: float64(29), object(1)
memory usage: 2.0+ MB
In [6]:
data.describe().T
Out[6]:
count mean std min 25% 50% 75% max
R Ph Voltage 8640.0 233.803370 3.178845 222.74 231.9575 234.030 235.8900 242.58
Y Ph Voltage 8640.0 232.069130 4.434858 221.16 228.8100 232.840 235.4100 241.88
B Ph Voltage 8640.0 233.211355 3.953158 221.69 230.9900 233.580 235.6600 241.43
Average Phase Voltage 8640.0 233.028390 3.713481 222.04 230.8900 233.325 235.6300 242.00
RY Line Voltage 8640.0 404.218610 6.397829 385.89 400.4800 404.735 408.8700 420.00
YB Line Voltage 8640.0 401.888191 6.479168 383.18 398.0500 402.435 406.3700 417.19
BR Line Voltage 8640.0 404.724051 6.437221 384.70 401.1900 405.300 409.0400 420.41
R Phase Line current 8640.0 26.974626 4.758228 18.00 23.7100 26.140 30.4000 44.62
Y Phase Line current 8640.0 33.126499 11.441572 18.57 21.3000 32.370 44.3900 59.82
B Phase Line current 8640.0 26.372053 6.203605 18.06 22.2000 23.060 29.9025 52.69
Neutral Line current 8640.0 10.956307 5.673764 0.06 6.3700 10.915 15.2800 27.30
R Phase Active Current 8640.0 25.755684 3.965661 17.95 23.3100 25.840 27.4500 43.74
Y Phase Active Current 8640.0 31.950946 11.230858 18.54 21.2800 28.830 43.7800 58.23
B Phase Active Current 8640.0 26.302705 6.164824 18.07 22.1800 23.030 29.8700 52.77
R Phase Reactive Current 8640.0 6.753064 5.085304 0.51 2.8500 4.390 11.0025 18.21
Y Phase Reactive Current 8640.0 7.156251 5.477900 0.07 1.0600 7.390 11.3800 17.41
B Phase Reactive Current 8640.0 -0.220495 1.980352 -2.81 -1.1300 -0.870 -0.4600 11.73
R- Phase Active Power 8640.0 5.946020 0.887718 4.12 5.4600 5.950 6.3200 9.84
Y- Phase Active Power 8640.0 7.332985 2.480592 4.27 4.9700 6.690 9.8000 13.08
B- Phase Active Power 8640.0 6.060556 1.346955 4.19 5.1400 5.390 6.8600 11.67
3 Phase Active Power 8640.0 19.338353 4.082006 13.16 15.6300 18.270 22.9500 31.84
R- Phase Reactive Power 8640.0 1.579657 1.191298 0.12 0.6600 1.040 2.5800 4.28
Y- Phase Reactive Power 8640.0 1.659164 1.282620 0.05 0.2500 1.660 2.5400 4.34
B- Phase Reactive Power 8640.0 -0.053623 0.456576 -0.66 -0.2700 -0.200 -0.1100 2.75
3 Phase Reactive Power 8640.0 3.185850 2.468542 0.00 1.1200 2.240 5.2600 9.62
R- Phase Apparent Power 8640.0 6.302558 1.085053 4.20 5.6200 6.070 7.1200 10.20
Y- Phase Apparent Power 8640.0 7.653997 2.533460 4.32 5.0200 7.560 9.9700 13.47
B- Phase Apparent Power 8640.0 6.130370 1.350076 4.27 5.2100 5.450 6.9000 11.70
3 Phase Apparent Power 8640.0 19.926172 4.176518 13.38 15.8400 19.630 23.2700 49.14
In [7]:
data['TIME'] = pd.to_datetime(data['TIME'])  # Convert 'TIME' column to datetime
data.set_index('TIME', inplace=True)  # Set 'TIME' column as index

# Resample the data into one-minute intervals and calculate the mean for each minute
data_minute_avg = data.resample('1Min').mean()

# Drop any NaN values that might have resulted from resampling
data_minute_avg.dropna(inplace=True)

# Display the new DataFrame
data_minute_avg.head()
Out[7]:
R Ph Voltage Y Ph Voltage B Ph Voltage Average Phase Voltage RY Line Voltage YB Line Voltage BR Line Voltage R Phase Line current Y Phase Line current B Phase Line current ... B- Phase Active Power 3 Phase Active Power R- Phase Reactive Power Y- Phase Reactive Power B- Phase Reactive Power 3 Phase Reactive Power R- Phase Apparent Power Y- Phase Apparent Power B- Phase Apparent Power 3 Phase Apparent Power
TIME
2024-07-04 00:00:00 234.933333 236.176667 237.870000 236.335000 409.380000 407.878333 410.770000 35.148333 34.091667 23.075000 ... 5.421667 19.710000 3.938333 3.675000 -0.180000 7.443333 8.251667 8.050000 5.490000 21.241667
2024-07-04 00:01:00 235.153333 236.486667 238.176667 236.596667 409.703333 408.286667 410.996667 35.088333 34.065000 23.151667 ... 5.428333 19.720000 3.941667 3.685000 -0.166667 7.468333 8.255000 8.048333 5.501667 21.251667
2024-07-04 00:02:00 235.466667 237.121667 238.525000 237.081667 410.848333 409.205000 411.818333 35.026667 33.223333 23.241667 ... 5.453333 19.473333 3.943333 3.693333 -0.176667 7.456667 8.250000 7.843333 5.526667 21.053333
2024-07-04 00:03:00 235.101667 236.830000 238.266667 236.751667 410.181667 408.826667 411.238333 35.056667 33.198333 23.283333 ... 5.475000 19.540000 3.938333 3.693333 -0.213333 7.426667 8.243333 7.881667 5.545000 21.091667
2024-07-04 00:04:00 234.948333 236.295000 237.940000 236.363333 409.643333 408.113333 410.853333 35.063333 34.170000 23.146667 ... 5.431667 19.748333 3.941667 3.685000 -0.261667 7.388333 8.248333 8.093333 5.508333 21.271667

5 rows × 29 columns

In [8]:
data_minute_avg.shape
Out[8]:
(1440, 29)
In [9]:
for col in data_minute_avg.columns:
    plt.figure(figsize=(10, 8))
    plt.plot(data_minute_avg.index, data_minute_avg[col], label=col)
    tit = col + " v/s time"
    plt.title(tit)
    plt.xlabel("Time (3 hrs)")
    plt.ylabel(col)
    plt.legend()
    plt.show()
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
In [10]:
# Iterate over each column of the data_minute_avg DataFrame
for col in data_minute_avg.columns:
    plt.figure(figsize=(10, 8))
    plt.hist(data_minute_avg[col], bins=20, color='skyblue', edgecolor='black')
    tit = col + " Distribution"
    plt.title(tit)
    plt.xlabel(col)
    plt.ylabel("Frequency")
    plt.show()
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
In [11]:
for col in data_minute_avg.columns:
    plt.figure(figsize=(10, 8))
    sns.violinplot(data=data_minute_avg[col], color='skyblue')
    tit = col + " Distribution"
    plt.title(tit)
    plt.xlabel(col)
    plt.show()
C:\Users\Tabish Ali Ansari\anaconda3\Lib\site-packages\seaborn\categorical.py:486: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  if np.isscalar(data[0]):
No description has been provided for this image
C:\Users\Tabish Ali Ansari\anaconda3\Lib\site-packages\seaborn\categorical.py:486: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  if np.isscalar(data[0]):
No description has been provided for this image
C:\Users\Tabish Ali Ansari\anaconda3\Lib\site-packages\seaborn\categorical.py:486: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  if np.isscalar(data[0]):
No description has been provided for this image
C:\Users\Tabish Ali Ansari\anaconda3\Lib\site-packages\seaborn\categorical.py:486: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  if np.isscalar(data[0]):
No description has been provided for this image
C:\Users\Tabish Ali Ansari\anaconda3\Lib\site-packages\seaborn\categorical.py:486: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  if np.isscalar(data[0]):
No description has been provided for this image
C:\Users\Tabish Ali Ansari\anaconda3\Lib\site-packages\seaborn\categorical.py:486: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  if np.isscalar(data[0]):
No description has been provided for this image
C:\Users\Tabish Ali Ansari\anaconda3\Lib\site-packages\seaborn\categorical.py:486: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  if np.isscalar(data[0]):
No description has been provided for this image
C:\Users\Tabish Ali Ansari\anaconda3\Lib\site-packages\seaborn\categorical.py:486: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  if np.isscalar(data[0]):
No description has been provided for this image
C:\Users\Tabish Ali Ansari\anaconda3\Lib\site-packages\seaborn\categorical.py:486: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  if np.isscalar(data[0]):
No description has been provided for this image
C:\Users\Tabish Ali Ansari\anaconda3\Lib\site-packages\seaborn\categorical.py:486: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  if np.isscalar(data[0]):
No description has been provided for this image
C:\Users\Tabish Ali Ansari\anaconda3\Lib\site-packages\seaborn\categorical.py:486: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  if np.isscalar(data[0]):
No description has been provided for this image
C:\Users\Tabish Ali Ansari\anaconda3\Lib\site-packages\seaborn\categorical.py:486: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  if np.isscalar(data[0]):
No description has been provided for this image
C:\Users\Tabish Ali Ansari\anaconda3\Lib\site-packages\seaborn\categorical.py:486: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  if np.isscalar(data[0]):
No description has been provided for this image
C:\Users\Tabish Ali Ansari\anaconda3\Lib\site-packages\seaborn\categorical.py:486: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  if np.isscalar(data[0]):
No description has been provided for this image
C:\Users\Tabish Ali Ansari\anaconda3\Lib\site-packages\seaborn\categorical.py:486: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  if np.isscalar(data[0]):
No description has been provided for this image
C:\Users\Tabish Ali Ansari\anaconda3\Lib\site-packages\seaborn\categorical.py:486: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  if np.isscalar(data[0]):
No description has been provided for this image
C:\Users\Tabish Ali Ansari\anaconda3\Lib\site-packages\seaborn\categorical.py:486: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  if np.isscalar(data[0]):
No description has been provided for this image
C:\Users\Tabish Ali Ansari\anaconda3\Lib\site-packages\seaborn\categorical.py:486: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  if np.isscalar(data[0]):
No description has been provided for this image
C:\Users\Tabish Ali Ansari\anaconda3\Lib\site-packages\seaborn\categorical.py:486: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  if np.isscalar(data[0]):
No description has been provided for this image
C:\Users\Tabish Ali Ansari\anaconda3\Lib\site-packages\seaborn\categorical.py:486: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  if np.isscalar(data[0]):
No description has been provided for this image
C:\Users\Tabish Ali Ansari\anaconda3\Lib\site-packages\seaborn\categorical.py:486: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  if np.isscalar(data[0]):
No description has been provided for this image
C:\Users\Tabish Ali Ansari\anaconda3\Lib\site-packages\seaborn\categorical.py:486: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  if np.isscalar(data[0]):
No description has been provided for this image
C:\Users\Tabish Ali Ansari\anaconda3\Lib\site-packages\seaborn\categorical.py:486: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  if np.isscalar(data[0]):
No description has been provided for this image
C:\Users\Tabish Ali Ansari\anaconda3\Lib\site-packages\seaborn\categorical.py:486: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  if np.isscalar(data[0]):
No description has been provided for this image
C:\Users\Tabish Ali Ansari\anaconda3\Lib\site-packages\seaborn\categorical.py:486: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  if np.isscalar(data[0]):
No description has been provided for this image
C:\Users\Tabish Ali Ansari\anaconda3\Lib\site-packages\seaborn\categorical.py:486: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  if np.isscalar(data[0]):
No description has been provided for this image
C:\Users\Tabish Ali Ansari\anaconda3\Lib\site-packages\seaborn\categorical.py:486: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  if np.isscalar(data[0]):
No description has been provided for this image
C:\Users\Tabish Ali Ansari\anaconda3\Lib\site-packages\seaborn\categorical.py:486: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  if np.isscalar(data[0]):
No description has been provided for this image
C:\Users\Tabish Ali Ansari\anaconda3\Lib\site-packages\seaborn\categorical.py:486: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  if np.isscalar(data[0]):
No description has been provided for this image
In [12]:
print("\033[1mMean\033[0m")
print()
data_minute_avg.mean()
Mean

Out[12]:
R Ph Voltage                233.803370
Y Ph Voltage                232.069130
B Ph Voltage                233.211355
Average Phase Voltage       233.028390
RY Line Voltage             404.218610
YB Line Voltage             401.888191
BR Line Voltage             404.724051
R Phase Line current         26.974626
Y Phase Line current         33.126499
B Phase Line current         26.372053
Neutral Line current         10.956307
R Phase Active Current       25.755684
Y Phase Active Current       31.950946
B Phase Active Current       26.302705
R Phase Reactive Current      6.753064
Y Phase Reactive Current      7.156251
B Phase Reactive Current     -0.220495
R- Phase Active Power         5.946020
Y- Phase Active Power         7.332985
B- Phase Active Power         6.060556
3 Phase Active Power         19.338353
R- Phase Reactive Power       1.579657
Y- Phase Reactive Power       1.659164
B- Phase Reactive Power      -0.053623
3 Phase Reactive Power        3.185850
R- Phase Apparent Power       6.302558
Y- Phase Apparent Power       7.653997
B- Phase Apparent Power       6.130370
3 Phase Apparent  Power      19.926172
dtype: float64
In [13]:
print("\033[1mMedian\033[0m")
print()
data_minute_avg.median()
Median

Out[13]:
R Ph Voltage                234.002500
Y Ph Voltage                232.836667
B Ph Voltage                233.604167
Average Phase Voltage       233.316667
RY Line Voltage             404.715000
YB Line Voltage             402.435833
BR Line Voltage             405.300000
R Phase Line current         26.135833
Y Phase Line current         32.336667
B Phase Line current         23.060833
Neutral Line current         10.972500
R Phase Active Current       25.870000
Y Phase Active Current       28.778333
B Phase Active Current       23.025833
R Phase Reactive Current      4.414167
Y Phase Reactive Current      7.386667
B Phase Reactive Current     -0.874167
R- Phase Active Power         5.955833
Y- Phase Active Power         6.695000
B- Phase Active Power         5.390000
3 Phase Active Power         18.297500
R- Phase Reactive Power       1.040000
Y- Phase Reactive Power       1.657500
B- Phase Reactive Power      -0.203333
3 Phase Reactive Power        2.239167
R- Phase Apparent Power       6.065000
Y- Phase Apparent Power       7.557500
B- Phase Apparent Power       5.450000
3 Phase Apparent  Power      19.655000
dtype: float64
In [14]:
print("\033[1mMode\033[0m")
print()
data_minute_avg.mode()
Mode

Out[14]:
R Ph Voltage Y Ph Voltage B Ph Voltage Average Phase Voltage RY Line Voltage YB Line Voltage BR Line Voltage R Phase Line current Y Phase Line current B Phase Line current ... B- Phase Active Power 3 Phase Active Power R- Phase Reactive Power Y- Phase Reactive Power B- Phase Reactive Power 3 Phase Reactive Power R- Phase Apparent Power Y- Phase Apparent Power B- Phase Apparent Power 3 Phase Apparent Power
0 232.573333 228.783333 232.306667 225.630000 404.096667 401.608333 405.3 22.816667 21.263333 22.603333 ... 5.203333 15.461667 0.71 0.213333 -0.273333 0.973333 5.650000 7.826667 5.273333 15.666667
1 233.233333 230.520000 232.331667 228.840000 410.515000 403.000000 NaN 23.303333 NaN NaN ... NaN 15.505000 NaN NaN NaN 2.213333 5.736667 NaN NaN 15.700000
2 233.868333 232.836667 232.335000 233.225000 NaN NaN NaN 23.556667 NaN NaN ... NaN 15.536667 NaN NaN NaN NaN 5.860000 NaN NaN 19.433333
3 235.586667 235.220000 232.626667 233.840000 NaN NaN NaN 24.126667 NaN NaN ... NaN 15.560000 NaN NaN NaN NaN 6.051667 NaN NaN 19.753333
4 236.288333 235.585000 233.541667 236.863333 NaN NaN NaN 24.260000 NaN NaN ... NaN 18.221667 NaN NaN NaN NaN NaN NaN NaN 25.095000
5 236.300000 NaN 234.113333 237.076667 NaN NaN NaN 24.910000 NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
6 236.380000 NaN 234.278333 NaN NaN NaN NaN 26.080000 NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
7 236.420000 NaN 234.873333 NaN NaN NaN NaN 26.573333 NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
8 236.770000 NaN 235.306667 NaN NaN NaN NaN 31.533333 NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
9 NaN NaN NaN NaN NaN NaN NaN 31.580000 NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
10 NaN NaN NaN NaN NaN NaN NaN 31.590000 NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
11 NaN NaN NaN NaN NaN NaN NaN 31.613333 NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN

12 rows × 29 columns

In [15]:
print("\033[1mStandard Deviation\033[0m")
print()
for col in data_minute_avg.columns:
    print(col, ":", stats.stdev(data_minute_avg[col]))
Standard Deviation

R Ph Voltage : 3.171990104165955
Y Ph Voltage : 4.4303111461137785
B Ph Voltage : 3.9484335356483107
Average Phase Voltage : 3.7094198194260133
RY Line Voltage : 6.390126820709543
YB Line Voltage : 6.471920320128618
BR Line Voltage : 6.429869152424708
R Phase Line current : 4.723051310280334
Y Phase Line current : 11.42604559426256
B Phase Line current : 6.175437767807627
Neutral Line current : 5.62241095725543
R Phase Active Current : 3.926010492875708
Y Phase Active Current : 11.21629797062077
B Phase Active Current : 6.137722039637347
R Phase Reactive Current : 5.078568639157112
Y Phase Reactive Current : 5.474148615486598
B Phase Reactive Current : 1.9770432121067631
R- Phase Active Power : 0.8781876162327186
Y- Phase Active Power : 2.477352677295844
B- Phase Active Power : 1.3407915350235111
3 Phase Active Power : 4.0749022092344465
R- Phase Reactive Power : 1.189909335784449
Y- Phase Reactive Power : 1.2821559839800512
B- Phase Reactive Power : 0.45585296713415435
3 Phase Reactive Power : 2.4669162846075516
R- Phase Apparent Power : 1.0754180486456097
Y- Phase Apparent Power : 2.530082547940558
B- Phase Apparent Power : 1.3436217221634572
3 Phase Apparent  Power : 4.125061636849044
In [16]:
print("\033[1mVariance\033[0m")
print()
for col in data_minute_avg.columns:
    print(col, ":", stats.variance(data_minute_avg[col]))
Variance

R Ph Voltage : 10.061521220926744
Y Ph Voltage : 19.62765685137998
B Ph Voltage : 15.590127385432218
Average Phase Voltage : 13.759795396750517
RY Line Voltage : 40.833720784751456
YB Line Voltage : 41.88575263009371
BR Line Voltage : 41.34321731730283
R Phase Line current : 22.30721367954078
Y Phase Line current : 130.55451792216684
B Phase Line current : 38.13603162406485
Neutral Line current : 31.611504972265923
R Phase Active Current : 15.413558390170161
Y Phase Active Current : 125.80534016575163
B Phase Active Current : 37.67163183585003
R Phase Reactive Current : 25.791859422630118
Y Phase Reactive Current : 29.966303064433838
B Phase Reactive Current : 3.9086998625374276
R- Phase Active Power : 0.7712134893045046
Y- Phase Active Power : 6.137276287704886
B- Phase Active Power : 1.7977219403907034
3 Phase Active Power : 16.60482801482377
R- Phase Reactive Power : 1.4158842273869885
Y- Phase Reactive Power : 1.6439239672558532
B- Phase Reactive Power : 0.2078019276450124
3 Phase Reactive Power : 6.0856759552619275
R- Phase Apparent Power : 1.156523979352731
Y- Phase Apparent Power : 6.4013176993933865
B- Phase Apparent Power : 1.8053193322694945
3 Phase Apparent  Power : 17.01613350780372
In [17]:
# Calculate the correlation matrix
correlation_matrix = data_minute_avg.corr()
correlation_matrix.head(29)
Out[17]:
R Ph Voltage Y Ph Voltage B Ph Voltage Average Phase Voltage RY Line Voltage YB Line Voltage BR Line Voltage R Phase Line current Y Phase Line current B Phase Line current ... B- Phase Active Power 3 Phase Active Power R- Phase Reactive Power Y- Phase Reactive Power B- Phase Reactive Power 3 Phase Reactive Power R- Phase Apparent Power Y- Phase Apparent Power B- Phase Apparent Power 3 Phase Apparent Power
R Ph Voltage 1.000000 0.858136 0.891371 0.942816 0.943962 0.934201 0.946953 -0.320222 -0.402387 -0.545634 ... -0.507007 -0.465383 0.080393 -0.196123 -0.227437 -0.105323 -0.245333 -0.368681 -0.508696 -0.460145
Y Ph Voltage 0.858136 1.000000 0.919343 0.968651 0.974096 0.966600 0.961587 -0.138245 -0.687163 -0.737715 ... -0.713740 -0.713762 0.413796 -0.064248 -0.178937 0.133236 -0.070397 -0.653643 -0.710940 -0.667879
B Ph Voltage 0.891371 0.919343 1.000000 0.974554 0.962987 0.980661 0.975656 -0.056489 -0.400104 -0.732542 ... -0.698537 -0.517809 0.431228 0.143029 -0.268776 0.232671 0.017143 -0.359397 -0.698284 -0.466605
Average Phase Voltage 0.942816 0.968651 0.974554 1.000000 0.998420 0.998872 0.998772 -0.166530 -0.530176 -0.708683 ... -0.676030 -0.600306 0.340197 -0.031133 -0.231266 0.105177 -0.092021 -0.492791 -0.675309 -0.562414
RY Line Voltage 0.943962 0.974096 0.962987 0.998420 1.000000 0.996008 0.995802 -0.181127 -0.557666 -0.704483 ... -0.672949 -0.616733 0.323700 -0.064150 -0.213531 0.083337 -0.107216 -0.521209 -0.671822 -0.580930
YB Line Voltage 0.934201 0.966600 0.980661 0.998872 0.996008 1.000000 0.997070 -0.153022 -0.519598 -0.719711 ... -0.687314 -0.597533 0.357765 -0.005185 -0.232219 0.126960 -0.078766 -0.481685 -0.686471 -0.556945
BR Line Voltage 0.946953 0.961587 0.975656 0.998772 0.995802 0.997070 1.000000 -0.166466 -0.512389 -0.698850 ... -0.664852 -0.585071 0.335850 -0.026210 -0.247470 0.102644 -0.091395 -0.474818 -0.664741 -0.548265
R Phase Line current -0.320222 -0.138245 -0.056489 -0.166530 -0.181127 -0.153022 -0.166466 1.000000 0.427904 0.315940 ... 0.316997 0.529036 0.714729 0.747496 0.470047 0.820560 0.995426 0.439265 0.328463 0.605262
Y Phase Line current -0.402387 -0.687163 -0.400104 -0.530176 -0.557666 -0.519598 -0.512389 0.427904 1.000000 0.685215 ... 0.697357 0.944358 -0.056508 0.515807 0.133662 0.265462 0.406570 0.998699 0.693633 0.938864
B Phase Line current -0.545634 -0.737715 -0.732542 -0.708683 -0.704483 -0.719711 -0.698850 0.315940 0.685215 1.000000 ... 0.997523 0.855444 -0.245814 0.097228 0.398812 0.005838 0.277248 0.665325 0.997794 0.817447
Neutral Line current -0.145787 -0.275262 -0.002277 -0.152161 -0.189914 -0.137863 -0.129360 0.457893 0.720524 0.296469 ... 0.321476 0.614910 0.293119 0.649407 -0.150819 0.451422 0.463198 0.736089 0.313090 0.646476
R Phase Active Current -0.416939 -0.322069 -0.239846 -0.332181 -0.341901 -0.323548 -0.331032 0.956516 0.529844 0.490550 ... 0.489396 0.669323 0.485435 0.592226 0.518342 0.638150 0.941101 0.531924 0.500095 0.715408
Y Phase Active Current -0.403498 -0.726187 -0.451364 -0.564147 -0.588409 -0.556703 -0.546068 0.350378 0.992046 0.720612 ... 0.732296 0.948446 -0.172355 0.405028 0.128917 0.151091 0.326463 0.987160 0.727690 0.927986
B Phase Active Current -0.545539 -0.739994 -0.733060 -0.709744 -0.706072 -0.720809 -0.699279 0.307486 0.687490 0.999195 ... 0.997899 0.855429 -0.253515 0.092948 0.376589 -0.004207 0.268682 0.667455 0.997328 0.816260
R Phase Reactive Current 0.064864 0.401702 0.417914 0.326219 0.309805 0.343933 0.321716 0.721300 -0.052201 -0.238424 ... -0.234152 -0.054547 0.999627 0.776523 0.244752 0.931364 0.747730 -0.023376 -0.222840 0.062951
Y Phase Reactive Current -0.218575 -0.091678 0.117656 -0.057452 -0.090502 -0.031537 -0.052336 0.752939 0.534945 0.119570 ... 0.126240 0.442077 0.760826 0.999190 0.174645 0.918803 0.757831 0.557800 0.132065 0.540772
B Phase Reactive Current -0.226652 -0.177402 -0.266550 -0.229655 -0.211957 -0.230505 -0.245881 0.473630 0.134158 0.397977 ... 0.376977 0.311695 0.240828 0.167676 0.999516 0.388018 0.462715 0.129747 0.402445 0.339289
R- Phase Active Power -0.339005 -0.254966 -0.165244 -0.256764 -0.266994 -0.248585 -0.254966 0.960748 0.514308 0.457580 ... 0.460256 0.652025 0.512136 0.597959 0.515043 0.653362 0.952707 0.519883 0.471177 0.700385
Y- Phase Active Power -0.372082 -0.698183 -0.416026 -0.531515 -0.556561 -0.523724 -0.513169 0.358653 0.993685 0.705331 ... 0.718839 0.945657 -0.150854 0.423455 0.124797 0.170281 0.337784 0.990933 0.714266 0.927726
B- Phase Active Power -0.507007 -0.713740 -0.698537 -0.676030 -0.672949 -0.687314 -0.664852 0.316997 0.697357 0.997523 ... 1.000000 0.865077 -0.240763 0.104642 0.377915 0.008281 0.281859 0.679359 0.998950 0.826735
3 Phase Active Power -0.465383 -0.713762 -0.517809 -0.600306 -0.616733 -0.597533 -0.585071 0.529036 0.944358 0.855444 ... 0.865077 1.000000 -0.060335 0.420926 0.311188 0.247259 0.503330 0.938026 0.864369 0.986907
R- Phase Reactive Power 0.080393 0.413796 0.431228 0.340197 0.323700 0.357765 0.335850 0.714729 -0.056508 -0.245814 ... -0.240763 -0.060335 1.000000 0.774156 0.238680 0.929171 0.742909 -0.027034 -0.229583 0.057165
Y- Phase Reactive Power -0.196123 -0.064248 0.143029 -0.031133 -0.064150 -0.005185 -0.026210 0.747496 0.515807 0.097228 ... 0.104642 0.420926 0.774156 1.000000 0.165257 0.923910 0.754574 0.539875 0.110411 0.521248
B- Phase Reactive Power -0.227437 -0.178937 -0.268776 -0.231266 -0.213531 -0.232219 -0.247470 0.470047 0.133662 0.398812 ... 0.377915 0.311188 0.238680 0.165257 1.000000 0.385796 0.459316 0.129253 0.403446 0.338582
3 Phase Reactive Power -0.105323 0.133236 0.232671 0.105177 0.083337 0.126960 0.102644 0.820560 0.265462 0.005838 ... 0.008281 0.247259 0.929171 0.923910 0.385796 1.000000 0.835976 0.291375 0.021384 0.361185
R- Phase Apparent Power -0.245333 -0.070397 0.017143 -0.092021 -0.107216 -0.078766 -0.091395 0.995426 0.406570 0.277248 ... 0.281859 0.503330 0.742909 0.754574 0.459316 0.835976 1.000000 0.421444 0.293477 0.582569
Y- Phase Apparent Power -0.368681 -0.653643 -0.359397 -0.492791 -0.521209 -0.481685 -0.474818 0.439265 0.998699 0.665325 ... 0.679359 0.938026 -0.027034 0.539875 0.129253 0.291375 0.421444 1.000000 0.675749 0.936165
B- Phase Apparent Power -0.508696 -0.710940 -0.698284 -0.675309 -0.671822 -0.686471 -0.664741 0.328463 0.693633 0.997794 ... 0.998950 0.864369 -0.229583 0.110411 0.403446 0.021384 0.293477 0.675749 1.000000 0.827906
3 Phase Apparent Power -0.460145 -0.667879 -0.466605 -0.562414 -0.580930 -0.556945 -0.548265 0.605262 0.938864 0.817447 ... 0.826735 0.986907 0.057165 0.521248 0.338582 0.361185 0.582569 0.936165 0.827906 1.000000

29 rows × 29 columns

In [18]:
plt.figure(figsize=(10, 8))
custom_palette = sns.diverging_palette(220, 20, as_cmap=True)
sns.heatmap(correlation_matrix, annot=True, cmap=custom_palette, fmt=".2f", 
            linewidths=0.5, linecolor='gray', cbar_kws={"shrink": 0.8})
plt.xticks(rotation=45)
plt.yticks(rotation=0)
plt.title("Correlation Heatmap")
plt.show()
No description has been provided for this image
In [19]:
for col in data_minute_avg.columns:
    plt.figure(figsize=(10, 8))
    sns.boxplot(data=data_minute_avg[col], color='skyblue')
    tit = col + " Distribution"
    plt.title(tit)
    plt.xlabel(col)
    plt.show()
C:\Users\Tabish Ali Ansari\anaconda3\Lib\site-packages\seaborn\categorical.py:486: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  if np.isscalar(data[0]):
No description has been provided for this image
C:\Users\Tabish Ali Ansari\anaconda3\Lib\site-packages\seaborn\categorical.py:486: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  if np.isscalar(data[0]):
No description has been provided for this image
C:\Users\Tabish Ali Ansari\anaconda3\Lib\site-packages\seaborn\categorical.py:486: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  if np.isscalar(data[0]):
No description has been provided for this image
C:\Users\Tabish Ali Ansari\anaconda3\Lib\site-packages\seaborn\categorical.py:486: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  if np.isscalar(data[0]):
No description has been provided for this image
C:\Users\Tabish Ali Ansari\anaconda3\Lib\site-packages\seaborn\categorical.py:486: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  if np.isscalar(data[0]):
No description has been provided for this image
C:\Users\Tabish Ali Ansari\anaconda3\Lib\site-packages\seaborn\categorical.py:486: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  if np.isscalar(data[0]):
No description has been provided for this image
C:\Users\Tabish Ali Ansari\anaconda3\Lib\site-packages\seaborn\categorical.py:486: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  if np.isscalar(data[0]):
No description has been provided for this image
C:\Users\Tabish Ali Ansari\anaconda3\Lib\site-packages\seaborn\categorical.py:486: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  if np.isscalar(data[0]):
No description has been provided for this image
C:\Users\Tabish Ali Ansari\anaconda3\Lib\site-packages\seaborn\categorical.py:486: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  if np.isscalar(data[0]):
No description has been provided for this image
C:\Users\Tabish Ali Ansari\anaconda3\Lib\site-packages\seaborn\categorical.py:486: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  if np.isscalar(data[0]):
No description has been provided for this image
C:\Users\Tabish Ali Ansari\anaconda3\Lib\site-packages\seaborn\categorical.py:486: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  if np.isscalar(data[0]):
No description has been provided for this image
C:\Users\Tabish Ali Ansari\anaconda3\Lib\site-packages\seaborn\categorical.py:486: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  if np.isscalar(data[0]):
No description has been provided for this image
C:\Users\Tabish Ali Ansari\anaconda3\Lib\site-packages\seaborn\categorical.py:486: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  if np.isscalar(data[0]):
No description has been provided for this image
C:\Users\Tabish Ali Ansari\anaconda3\Lib\site-packages\seaborn\categorical.py:486: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  if np.isscalar(data[0]):
No description has been provided for this image
C:\Users\Tabish Ali Ansari\anaconda3\Lib\site-packages\seaborn\categorical.py:486: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  if np.isscalar(data[0]):
No description has been provided for this image
C:\Users\Tabish Ali Ansari\anaconda3\Lib\site-packages\seaborn\categorical.py:486: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  if np.isscalar(data[0]):
No description has been provided for this image
C:\Users\Tabish Ali Ansari\anaconda3\Lib\site-packages\seaborn\categorical.py:486: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  if np.isscalar(data[0]):
No description has been provided for this image
C:\Users\Tabish Ali Ansari\anaconda3\Lib\site-packages\seaborn\categorical.py:486: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  if np.isscalar(data[0]):
No description has been provided for this image
C:\Users\Tabish Ali Ansari\anaconda3\Lib\site-packages\seaborn\categorical.py:486: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  if np.isscalar(data[0]):
No description has been provided for this image
C:\Users\Tabish Ali Ansari\anaconda3\Lib\site-packages\seaborn\categorical.py:486: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  if np.isscalar(data[0]):
No description has been provided for this image
C:\Users\Tabish Ali Ansari\anaconda3\Lib\site-packages\seaborn\categorical.py:486: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  if np.isscalar(data[0]):
No description has been provided for this image
C:\Users\Tabish Ali Ansari\anaconda3\Lib\site-packages\seaborn\categorical.py:486: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  if np.isscalar(data[0]):
No description has been provided for this image
C:\Users\Tabish Ali Ansari\anaconda3\Lib\site-packages\seaborn\categorical.py:486: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  if np.isscalar(data[0]):
No description has been provided for this image
C:\Users\Tabish Ali Ansari\anaconda3\Lib\site-packages\seaborn\categorical.py:486: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  if np.isscalar(data[0]):
No description has been provided for this image
C:\Users\Tabish Ali Ansari\anaconda3\Lib\site-packages\seaborn\categorical.py:486: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  if np.isscalar(data[0]):
No description has been provided for this image
C:\Users\Tabish Ali Ansari\anaconda3\Lib\site-packages\seaborn\categorical.py:486: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  if np.isscalar(data[0]):
No description has been provided for this image
C:\Users\Tabish Ali Ansari\anaconda3\Lib\site-packages\seaborn\categorical.py:486: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  if np.isscalar(data[0]):
No description has been provided for this image
C:\Users\Tabish Ali Ansari\anaconda3\Lib\site-packages\seaborn\categorical.py:486: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  if np.isscalar(data[0]):
No description has been provided for this image
C:\Users\Tabish Ali Ansari\anaconda3\Lib\site-packages\seaborn\categorical.py:486: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  if np.isscalar(data[0]):
No description has been provided for this image
In [ ]: